package cn.campus.dao.article;

import cn.campus.pojo.article.dto.CommentDTO;
import cn.campus.pojo.article.po.Comment;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 评论数据持久化访问接口
 * Created by linyanbin on 2018/9/20.
 */
public interface CommentMapper {
    /**
     * 添加评论
     * @param Comment
     * @return
     */
    int insertComment(Comment Comment);

    /**
     * 更新评论
     * @param Comment
     * @return
     */
    int updateComment(Comment Comment);

    /**
     * 删除一条评论
     * @param commentId
     * @return
     */
    int deleteCommentById(String commentId);

    /**
     * 查询一条评论，单表
     * @param commentId
     * @return
     */
    Comment findCommentById(String commentId);

    /**
     * 根据文章id查询评论列表，单表
     * @param articleId
     * @return
     */
    List<Comment> findListByArticleId(@Param("articleId") String articleId, @Param("page") Integer page, @Param("size") Integer size);

    /**
     * 查询一条评论，多表
     * @param commentId
     * @return
     */
    CommentDTO unionFindCommentById(String commentId);

    /**
     * 根据文章id查询评论列表，多表
     * @param articleId
     * @return
     */
    List<CommentDTO> unionFindListByArticleId(@Param("articleId") String articleId, @Param("page") Integer page, @Param("size") Integer size);


    /**
     * 统计文章下的评论数
     * @param articleId
     * @return
     */
    long countByArticleId(String articleId);

}
